<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script>


//【示例1】在下面示例中，分别为空数组a中下标位置为2和100的元素赋值，此时数组a中仅有两个元素。
var a = [];				// 声明空数组
a[2] =1; 				// 为下标为2的元素赋值
a[100] =2; 				// 为下标为100的元素赋值
for(var i in a){ 		// 遍历数组，仅能够读取两个元素，说明其他元素不存在
    alert(a[i]);
}

alert(a[0]); 			// 返回undefined，说明没有这个元素
alert(a[1]) ;			// 返回undefined，说明没有这个元素
a[0] = 3;				// 为数组下标值等于0的元素赋值为3
a[1] = 4;				// 为数组下标值等于1的元素赋值为4
alert(a[0]); 			// 返回3，说明该元素存在
alert(a[1]); 			// 返回4，说明该元素存在
//【示例2】length属性值不是数组元素的实际个数，而是当前数组的最大元素个数。由于数组下标可以是非连续的，因此length属性的值总是等于数组最大下标值加上1。
var a = [];				// 声明空数组
a[2] =1;
a[100] =2;
alert(a.length); 		// 返回101
//【示例3】数组的length属性是一个动态值，当数组添加了新元素之后，它的值也会自动更新，以便在给数组添加新元时保持不变。
a[200] =200;
alert(a.length); 		// 返回201
//【示例4】作为动态值，数组的length属性可以被更新。如果length属性被设置了一个比当前length值小的值，则数组将会被截断，新长度之外的元素值都会被丢失；如果length属性被设置了一个比当前length值大的值，那么新的未定义的元素就会被添加到数组末尾，以使得数组增长到新指定的长度，其默认值为undefined。
var a = [1,2,3]; 		// 声明数组直接量
a.length = 5; 			// 增长数组长度
alert(a[4]); 			// 返回undefined，说明该元素还没有被赋值
a.length = 2; 			// 缩短数组长度
alert(a[2]); 			// 返回undefined，说明该元素的值已经丢失



</script>
</head>
<body>




</body>
</html>
